using System;
using System.Collections.Generic;
using System.Text;
using System.CodeDom;
using NBusiness.CodeDom;

namespace NBusiness.Templates.Contracts
{
    public interface IParentRelationship : IContract
    {
        CodeTypeMember[] ParentRelationshipMembers(EntityRelationship relationship);

        CodeStatement PersistParentsStatement(EntityRelationship relationship);

        CodeMemberMethod[] FetchByParentMethods(EntityRelationship relationship);

        CodeTypeDeclaration FetchByParentCriteria(EntityRelationship relationship);

        CodeConditionStatement FetchByParentCollection(EntityRelationship relationship, CodeVariableReferenceExpression criteriaReference);
    }
}
